
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import static stale.Stale.*;

import javax.swing.*;

import org.jdom2.JDOMException;

@SuppressWarnings("serial")
public class OknoGlowne extends JFrame {
     JPanel glowny;
     JPanel widoczny;
     Menu menu;
     Gra gra;
     Autorzy autorzy;
     TopLista toplista;


     OknoGlowne() throws IOException, JDOMException{
        super("The KulaEater!");

        glowny=new JPanel();
        glowny.setLayout(new GridLayout(1,1));
        menu=new Menu(this);
        autorzy=new Autorzy(this);
        toplista=new TopLista(this);
        gra=new Gra(this);
        widoczny=menu;
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
            System.exit(0);
            }
         }); 

        addKeyListener(new Klawiatura(gra.rozgrywka.pacman, this));
        
        setFocusable(true);
        glowny.setPreferredSize(new Dimension(SZEROKOSC_POLA_GRY,WYSOKOSC_PANELU_KONTROLNEGO+WYSOKOSC_POLA_GRY));
        glowny.add(widoczny);
        add(glowny); 
        pack();
        setVisible(true);
     }
     
   public void ustawPanel(int i){
       switch (i){
           case 0:
        	   if (widoczny==gra){
        		   gra.rozgrywka.zakonczGre();
        	   }
        	    aktualizuj(menu); 
           break;
           case 1:
                aktualizuj(gra);
                gra.rozgrywka.rozpocznijGre();
           break;
           case 2:
                aktualizuj(toplista);
           break;
           case 3:
                aktualizuj(autorzy);          
           break;
       }
   } 
   private void aktualizuj(JPanel panel){
           glowny.removeAll();
           widoczny=panel;
           glowny.add(widoczny,BorderLayout.CENTER);
           glowny.revalidate();
           glowny.repaint(); 
   }
   
     public static void main(String[] args) {
      javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
	            try{
					@SuppressWarnings("unused")
					OknoGlowne g=new OknoGlowne();
				} 
	            catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	            catch (JDOMException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
            }
        });
     }
}
